Delay tolerant decentralized network

ABSTRACT

A system may include processing logic configured to execute instructions to cause a system to perform operations including receiving a beacon from a first intermediate device via a first network. The operations may also include identifying a characteristic of the beacon. The operations may include identifying, based on the characteristic of the beacon, a server that is associated with the beacon. The operations may include sending a beacon message to the server via a third network.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/003,024, filed Jun. 7, 2018, which claims priority to U.S.Provisional Application No. 62/516,590, filed Jun. 7, 2017, titledSystem for Crowdsourcing Data Using Wireless Radios, both of which areincorporated herein by reference in their entirety.

FIELD

The embodiments discussed herein are related to decentralizednetworking.

BACKGROUND

The Internet of Things (IoT)—the network of connected “smart” devicesthat communicate seamlessly over the Internet—is expanding into everyaspect of human life. Increasingly, IoT devices are being used forhealthcare at hospitals, and in medical device and pharmaceuticalmanufacturing. In cities, IoT devices help track and monitor pollution.IoT devices can also be used by governments, militaries, companies, andindividuals for asset tracking and management. Although theseapplications serve different purposes, they all share onecharacteristic—a dependence on strong connectivity. Soon, conventionalnetworks will be unable to handle the bandwidth requirements of billionsof IoT devices.

The subject matter claimed herein is not limited to embodiments thatsolve any disadvantages or that operate only in environments such asthose described above. Rather, this background is only provided toillustrate one example technology area where some embodiments describedherein may be practiced.

SUMMARY

According to an aspect of an embodiment, a method may include receivinga beacon from a first intermediate device via a first network. Thebeacon may have been received by the first intermediate device from anendpoint device via a second network. The method may also includeidentifying a characteristic of the beacon. The method may includeidentifying, based on the characteristic of the beacon, a server that isassociated with the beacon. The method may also include sending a beaconmessage to the server via a third network, the beacon message includingat least one of the beacons, or information pertaining to the beacon.The method may further include receiving, from the server, a responsemessage pertaining to the beacon message. The method may includeprocessing the response message.

According to another aspect, a method may include detecting movement ofa first intermediate device from a first geographic location to a secondgeographic location. The method may also include receiving a beacon froman endpoint device responsive to the first intermediate device moving tothe second geographic location. The method may further includeidentifying a relay server to send a beacon message. The beacon messagemay include at least one of: the beacon, or information pertaining tothe beacon. The method may include sending the beacon message from theendpoint device to the relay server

The object and advantages of the embodiments will be realized andachieved at least by the elements, features, and combinationsparticularly pointed out in the claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and arenot restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments will be described and explained with additionalspecificity and detail through the use of the accompanying drawings inwhich:

FIG. 1 illustrates an example network architecture;

FIG. 2 illustrates an example network architecture;

FIG. 3 illustrates an example network architecture;

FIG. 4 illustrates an example network architecture;

FIG. 5 illustrates a flow diagram of an example method to handlecommunications between devices;

FIG. 6 illustrates a flow diagram of an example method to handlecommunications between an endpoint device and other device;

FIG. 7 illustrates a flow diagram of an example method to handlecommunications between an endpoint device and other devices; and

FIG. 8 illustrates a diagrammatic representation of a machine in theexample form of a computing device within which a set of instructions,for causing the machine to perform any one or more of the methodsdiscussed herein, may be executed,

and all arranged in accordance with at least one embodiment describedherein.

DESCRIPTION OF EMBODIMENTS

The Internet of Things (IoT) is expanding into every aspect of humanlife. With over 75 Billion IoT devices expected to be deployed by 2025,a more efficient new network infrastructure is needed to bring thesedevices online and connect them to each other.

Many connectivity solutions exist for IoT devices. Unfortunately, allsuffer problems of limited bandwidth, decreased connectivity, high powerconsumption, and/or high cost. For example, cellular connections mayconsume significant power in a device and may also be expensive. Lowpower solutions, such as a Low-Power Wide-Area Network (LPWAN) mayconsume less power than cellular connections. LPWANs, however, may beconstrained by limited bandwidth and may not be able to transmit enoughdata to fully serve the needs of distributed networks. Conventionalsystems may not consume a relatively low amount of power while stillproviding high bandwidth.

Specifically, to connect a small device to the Internet today, existingsolutions include: (a) using an existing wireless network, for example,by incorporating a cellular module with a subscriber identificationmodule (SIM) card or software SIM into the device to give it a cellularconnection, (b) building a new alternative wireless network byincorporating a custom radio chipset and building fixed infrastructureto support this network, and (c) using long range network technologysuch as LoRa Alliance Technology. LoRa uses a complex “star-of-stars”topology of gateways and bridges between IoT devices and a “centralnetwork server” on the industrial, scientific and medical (ISM) spectrumband.

Each of these approaches have significant drawbacks. For example, eachof these approaches require a significant amount of power which often isa major contributor to battery drain in mobile devices. Further,approach (a) requires expensive cellular modules and, in addition, amonthly fee for wireless cellular service for both, service subscriptionand data to a wireless carrier. Approaches (b) and (c) are alsoexpensive, because they require building new, fixed infrastructure, andoften require purchasing a chipset for radio transmission in addition tothe popular Bluetooth® chipsets. The longer the transmission range, thegreater the power requirement, so each of these approaches requiresignificant power. Similarly, cellular devices and Global PositioningSystem (GPS) enabled devices require high power to communicate with acell tower or satellites because of longer distances.

Aspects of the present disclosure address these and other problems withconventional networking by providing a new decentralized network. Insome aspects, a decentralized network may connect numerous devices usinglow-power while providing higher connectivity and/or bandwidth. Anembodiment includes a crowd-source based method for sending data from anIoT device to a server that does not rely on a fixed infrastructure.Another embodiment includes a crowd-source method for a cloud server tosend data to an IoT device that does not rely on a fixed infrastructure.A further embodiment includes a method for routing data in beacons frommultiple services on multiple IoT devices to the appropriate devicemanufacturer servers. Yet another embodiment includes a method to reduceenergy consumption on mobile devices used to collect or exchange datawith remote IoT devices.

In one aspect, the present disclosure describes systems and techniquesto improve upon existing technologies by obviating the need forseparate, fixed infrastructure by using crowdsourcing techniques. Someaspects provide a methodology for IoT device-to-server communicationthat has a low power consumption profile and does not require massivefixed hardware infrastructure. Other benefits of the present disclosureis in its ability to lower the cost of Internet access and to create aplatform for new innovations in the field of IoT.

The present disclosure may be useful to virtually every field that usesnetwork-based communications. Example parties that may benefit from thisdisclosure include, but are not limited to, smartphone manufacturers,bike and ride sharing companies, outdoor advertisers, environmentalanalytics companies, etc. Example applications may include use forpollution tracking, asset tracking, finding lost devices, industrialpredictive maintenance, etc. Further, aspects of the present disclosuremay not rely on connectivity using SIM or LPWAN modems, which enablesdevices to be smaller and more efficient.

For example, in location tracking of devices and assets scenarios, mostlow cost tracking device makers rely on app users to locate devices, anddo not have sufficient app density to provide global coverage. Adding acellular module and a GPS module is expensive and power hungry. Aspectsof the present disclosure may provide a solution that does not requireendpoint devices to include cellular or GPS modules which interoperatesglobally, and lowers costs.

In an example of low power sensor connectivity, the cost of some sensorsis so low that adding cellular or GPS connectivity can be an order ofmagnitude more expensive than the cost of the sensor. Aspects of thepresent disclosure may provide a connectivity service at a radicallylower cost.

Some aspects may also be used for firmware updates, updating date andtime of devices, creating a wearable device network, data IPconnectivity, measuring population density (such as by detecting thenumber of Bluetooth® devices in a given location), checking the presenceof a specific device for insurance companies, detecting trends of salesof a specific device for market analytics companies, hedge funds andprivate equity companies, etc.

Moreover, delay tolerant use cases, such as location updates andenvironmental/health data, may also benefit from the present disclosure.For example, many use cases do not require immediate cloud or Internetconnectivity. In this context, the present disclosure leveragessmartphones' Bluetooth® connectivity, and their Wi-Fi offloadingcapabilities to offer a significantly enhanced bandwidth compared toLPWANs.

FIG. 1 illustrates an example network architecture 100 in whichembodiments of the present disclosure may be implemented. The networkarchitecture 100 may include one or more endpoint devices 105, one ormore intermediate devices 115, one or more relay servers 125, and one ormore endpoint manager servers 135. In some embodiments, the networkarchitecture 100 may be capable to move data between one or moreendpoint devices 105 and various endpoint manager servers 135 by way ofcrowd-sourced intermediate devices 115, which may function act asnetwork clients, and one or more relay servers 125.

An endpoint device 105 may include one or more IoT devices. The endpointdevice 105 may include a power supply, a data collection device (e.g., asensor), and a network device. The power supply may include a battery ora connection to a power grid. Additionally or alternatively, the powersupply may include an energy harvesting apparatus, such as a solarpanel, solar cell, solar photovoltaic, electromagnetic, etc. In at leastsome embodiments, the endpoint device 105 may not include a power supplyand may instead use ambient backscatter techniques. The endpoint device105 may also include one or more sensors. The one or more sensors may beconfigured to detect any type of condition, and generate electronic databased on a detected condition. For example, the endpoint device 105 mayinclude a smart watch with a heart rate monitor that is configured togenerate heart rate data using heart rate conditions collected by theheart rate monitor. In at least one embodiment, the endpoint device 105does not have capability to communicate over the Internet and onlyincludes hardware and/or software capable of communicating with nearbydevices, such as a nearby intermediate device 115.

The network device of the endpoint device 105 may include any hardware,software, or combination thereof that is capable to communicate withanother device via a network. In at least one embodiment, the networkdevice may include any network controller configured to communicate viaa short-range network, such as Bluetooth® or any other short-rangenetwork. In at least one embodiment, the network device may include anynetwork controller configured to communicate via a low-power network.Example endpoint devices 105 include, but are not limited to, industrialdevices, residential appliances, commercial equipment, inventorytrackers, smart watches, wearables, heart rate monitors, logisticstrackers, environmental sensors, cash registers, credit card readers,point-of-sale (POS), bikes, electric scooters, electric skate boards,cars, electric cars, satellites, or any device (mobile and not mobilethat includes a wireless radio interface. The network architecture 100may include any number of endpoint devices 105 and the endpoint devices105 in the network architecture 100 may be any type of endpoint device105, including any type of network-capable device. The endpoint devices105 may be fixed or relatively stationary in the network architecture100, such as a POS or a pollution sensor. Additionally or alternatively,the endpoint devices 105 may be mobile, such as a smart watch, or anycar or vehicle.

The one or more endpoint devices 105 may be configured to communicatewith other devices via at least one wireless network 110. For example, afirst endpoint device 105 a may be in electronic communication with afirst intermediate device 115 a via a wireless network 110 a. The one ormore intermediate devices 115 may include any type of device capable ofcommunicating with an endpoint device 105 via the wireless network 110and with a relay server 125 via a second network 120. In at least oneembodiment, an intermediate device 115 may include two networkcontrollers—a first network controller to communicate via the wirelessnetwork 110 and a second network controller to communicate via thesecond network 120. Example intermediate devices 115 include personalcomputers (PC), laptops, smart phones, netbooks, e-readers, personaldigital assistants (PDA), cellular phones, mobile phones, tablets,vehicles, drones, cars, trucks, wearable devices, routers, televisions,or set top boxes, etc.

As illustrated, the first endpoint device 105 a may be in electroniccommunication with the first intermediate device 115 a via the wirelessnetwork 110 a (e.g., a short-range network). Further, a second endpointdevice 105 b may be in electronic communication with a secondintermediate device 115 b via another wireless network 110 b (e.g., alow-power network). A third endpoint device 105 c may be in electroniccommunication with a third intermediate device 115 c via anotherwireless network 110 c. A fourth endpoint device 105 d may be inelectronic communication with a fourth intermediate device 115 d viaanother wireless network 110 d.

In some embodiments, the wireless network 110 may be any network thatuses a relatively low amount of power. Example wireless networks 110 mayinclude any Bluetooth® network type (e.g., Bluetooth Low Energy (BLE),Bluetooth 4.0, Bluetooth 5.0, Bluetooth Long Range), NB-IoT, LTE Direct,LTE-M, LTE M2M, 5G, Wi-Fi, Wi-Fi Aware or any low-power network. The oneor more endpoint devices 105 may connect to various intermediate devices115 using different types of wireless networks 110. For example, thefirst endpoint device 105 a may be in electronic communication with thefirst intermediate device 115 a via a first short-range wireless network110 a and the second endpoint device 105 b may be in electroniccommunication with the second intermediate device 115 b via a secondshort-range wireless network 110 b.

Endpoint devices 105, intermediate devices 115, or both, may be fixed,relatively stationary or moveable. When an endpoint device 105 and anintermediate device 115 come into wireless range of each other, theendpoint device 105 and the intermediate device 115 may perform ahandshake and/or authentication to initiate data exchange between theendpoint device 105 and the intermediate device 115.

In some embodiments, the endpoint device 105 may periodically sendbeacons that include data via the wireless network 110. The endpointdevices 105 may include various services that may run on the endpointdevices 105. For example, a smart watch may include a clock service, aheart rate monitor service, a motion detection service, a music service,etc. Beacons may be generated for each of these services or a singlebeacon may be generated to include data for some or all of the services.

An intermediate device 115 may listen for such beacons from endpointdevices. Responsive to receiving a beacon, the intermediate device 115may send the beacon to a relay server 125 via a second network 120. Inat least one embodiment, the wireless network 110 and the second network120 are different types of networks. For example, the wireless network110 may be a Bluetooth® network and the second network 120 may be acellular network, Wi-Fi, or the Internet.

The second network 120 may include a public network (e.g., theInternet), a private network (e.g., a local area network (LAN) or widearea network (WAN)), a wired network (e.g., Ethernet network), awireless network (e.g., an 802.xx network or a Wi-Fi network), acellular network (e.g., a Long Term Evolution (LTE) or LTE-Advancednetwork, 1G, 2G, 3G, 4G, 5G, etc.), routers, hubs, switches, servercomputers, and/or a combination thereof.

The relay server 125 may send the beacon, or information related to thebeacon, to an endpoint manager server 135 via a third network 130. Thethird network 130 may include a public network (e.g., the Internet), aprivate network (e.g., a local area network (LAN) or wide area network(WAN)), a wired network (e.g., Ethernet network), a wireless network(e.g., an 802.xx network or a Wi-Fi network), a cellular network (e.g.,a Long Term Evolution (LTE) or LTE-Advanced network, 1G, 2G, 3G, 4G, 5G,etc.), routers, hubs, switches, server computers, and/or a combinationthereof. In at least one embodiment, the second network 120 and thethird network 130 are the same network or include at least someoverlapping components.

The one or more relay servers 125 may include one or more computingdevices, such as a rackmount server, a router computer, a servercomputer, a personal computer, a mainframe computer, a laptop computer,a tablet computer, a desktop computer, smartphone, cars, drones, arobot, any mobility device that has an operating system, etc.), datastores (e.g., hard disks, memories, databases), networks, softwarecomponents, and/or hardware components. The one or more relay servers125 may be configured to receive a beacon from an intermediate device115. The one or more relay servers 125 may send the beacon, or datarelated to or associated with to an endpoint manager server 135. The oneor more relay servers 125 may receive a message from the endpointmanager server 135 and, in some embodiments, may send the message fromthe endpoint manager server 135 to an intermediate device 115. In atleast some embodiments, the intermediate device 115 may perform one ormore operations responsive to receiving the message from the endpointmanager server 135. The operations include operations local to theintermediate device 115, and/or sending the message from the endpointmanager server 135 to an endpoint device 105.

The endpoint manager server 135 may include one or more computingdevices, such as a rackmount server, a router computer, a servercomputer, a personal computer, a mainframe computer, a laptop computer,a tablet computer, a desktop computer, a smartphone, a car, a drone, arobot, any mobility device that has an operating system etc.), datastores (e.g., hard disks, memories, databases), networks, softwarecomponents, and/or hardware components. The endpoint manager server 135may be associated with one or more endpoint devices 105. For example, aparticular corporation, person, or manufacturer may sell an endpointdevice 105 and may use an endpoint manager server 135 to communicatewith and/or control the endpoint device 105.

The endpoint manager server 135 may send messages associated with aparticular endpoint device 105, or a set of endpoint devices 105. Forexample, the endpoint manager server 135 may send updates (e.g.,firmware, software) to the particular endpoint device 105, or the set ofendpoint devices 105. The endpoint manager server 135 may send othercommunications to an endpoint device 105, such as a response to arequest from a beacon generated by the particular endpoint device 105.

Each relay server 125 may include a message manager 140. The messagemanager 140 may be implemented using hardware including a processor, amicroprocessor (e.g., to perform or control performance of one or moreoperations), an FPGA, or an ASIC. In some other instances, the messagemanager 140 may be implemented using a combination of hardware andsoftware. Implementation in software may include rapid activation anddeactivation of one or more transistors or transistor elements such asmay be included in hardware of a computing system (e.g., the relayserver 135). Additionally, software defined instructions may operate oninformation within transistor elements. Implementation of softwareinstructions may at least temporarily reconfigure electronic pathwaysand transform computing hardware.

Each relay server 125 may include a data storage 145. The data storage145 may include any memory or data storage. In some embodiments, thedata storage 145 may include computer-readable storage media forcarrying or having computer-executable instructions or data structuresstored thereon. The computer-readable storage media may include anyavailable media that may be accessed by a general-purpose orspecial-purpose computer, such as a processor. For example, the datastorage 145 may include computer-readable storage media that may betangible or non-transitory computer-readable storage media includingRandom Access Memory (RAM), Read-Only Memory (ROM), ElectricallyErasable Programmable Read-Only Memory (EEPROM), Compact Disc Read-OnlyMemory (CD-ROM) or other optical disk storage, magnetic disk storage orother magnetic storage devices, flash memory devices (e.g., solid statememory devices), or any other storage medium which may be used to carryor store desired program code in the form of computer-executableinstructions or data structures and that may be accessed by ageneral-purpose or special-purpose computer. Combinations of the abovemay be included in the data storage 145. In the depicted embodiment, thedata storage 145 is part of the relay server 125. In some embodiments,the data storage 145 may be separate from the relay server 125 and mayaccess the data storage 145 via a network. In at least one embodiment,the data storage 145 may include multiple data storages.

The data storage 145 may include data pertaining to the endpoint devices105, intermediate devices 115, and endpoint manager servers 135 andrelationships between the endpoint devices 105, intermediate devices115, and endpoint manager servers 135. For example, the data storage 145may include a table or list of endpoint devices that are associated witha particular endpoint manager server 135. The data storage 145 mayinclude data pertaining to beacons received from endpoint devices, suchas a timestamp of the receipt of the beacon, a timestamp associated withthe creation of the beacon, a geo-location associated with the beaconand/or the endpoint device 105 that created or transmitted the beacon,sensor data associated with the endpoint device, routing information forhow and/or where to send data between endpoint manager servers 135 andendpoint devices 105, connection strengths between intermediate devicesand endpoint devices, proximity of an endpoint device 105 to anintermediate device 115, type of wireless network 110 that connects anintermediate device 115 and an endpoint device 105, a cost of aconnection between an intermediate device 115 and an endpoint device105, a current battery level of the intermediate device, a type ofintermediate device, etc.

The message manager 140 may process communications between the endpointdevices 105, the intermediate devices 115 and the endpoint managerserver(s) 135. In an example, the message manager 140 may receive abeacon from the intermediate device 115 a via the second network 120 a.The beacon may have been sent to the intermediate device via thewireless network 110 a by endpoint device 105 a. A beacon may containcharacteristics about the endpoint device 105, including an identifierof the endpoint device 105 (e.g., a MAC address, a unique ID), ageographical location of the endpoint device 105 a, and advertisementsof the UUIDs of the services it supports, etc. The message manager 140may identify the characteristic of the beacon, such as by analyzing thebeacon to identify information pertaining to the beacon. The messagemanager 140 may access the data storage 145 to identify, based on thecharacteristic of the beacon, an endpoint manager server 135 that isassociated with the beacon. For example, the identifier of the endpointdevice may be associated with a particular manufacturer that operationsa particular endpoint manager server 135. The message manager 140 mayidentify this particular endpoint manager server 135 in the data storage145 and an address and/or path to send the beacon in order to reach theendpoint manager server 135. In at least some embodiments, the messagemanager 140 may send the beacon, or a beacon message to the endpointmanager server 135 via the third network 130. The beacon message mayinclude the beacon, may not include the beacon, or may includeinformation pertaining to the beacon.

In at least one embodiment, a beacon may include data from multipleservices associated with the endpoint device 105. Additionally oralternatively, multiple beacons from a single endpoint device 105 may begenerated and broadcast via the wireless network 110. Each of thesemultiple beacons, for example, may be associated with a differentservice associated with the endpoint device 105. The message manager 140may identify the services, and based on information for the service,identify an appropriate endpoint manager server 135 that should receivea beacon message.

The endpoint manager server 135 may receive the message from the relayserver 125. The endpoint manager server 135 may store the message,process the message, generate a report based on the message, maygenerate a notification or response based on the message, or any otheraction. For example, endpoint manager server 135 may generate a responsemessage pertaining to the beacon message. The response message mayinclude a message intended for one or more of the relay server 125, anintermediate device 115, the endpoint device 105 that generated thebeacon, or another endpoint device 105 that did not generate the beacon.The endpoint manager server 135 may send the response message to thesame relay server 125 that sent the beacon message to the endpointmanager server 135 (e.g., the relay server 125 a), or to a differentrelay server 125 that did not send the beacon message to the endpointmanager server 135 (e.g., relay server 125 b).

The relay server 125 may receive, from the endpoint manager server 135,the response message pertaining to the beacon message. The relay server125 may process the response message, such as by performing operationsat the relay server 125, sending data to another device (e.g., a userdevice), sending data to an endpoint device 105, etc.

The network architecture 100 may be used to exchange data between anydevices capable of network-based communication in a manner that isdifferent than conventional communication over the Internet.

In an example, the network architecture 100 may leverage existingsmartphone infrastructure to create delay-tolerant connectivity. Thenetwork architecture 100 can move data to the cloud in an initiallydelay tolerant fashion, which may be useful for many types of IoTcommunications such as firmware updates, status updates, log-filestorage, and micropayments. The intermediate device may include softwarethat runs on smartphones to periodically scan for other devices (e.g.,the endpoint devices 105) like industrial devices, smartwatches,wearables, logistics trackers, and environmental sensors. These endpointdevices 105 may connect with the software client running on thesmartphones to create massive, area wide networks for moving data to andwithin the cloud.

Further, it has been estimated that 95% of the human population iscovered by some sort of cellular service. The network architecture 100can be deployed anywhere in the world and enables regions of lowerconnectivity to increase their connectivity. Moreover, the networkarchitecture 100 can provide coverage beyond the reach of conventionalcellular networks by using software that runs on Bluetooth®-enabledsmartphones, for example. Users may travel to areas of limited or nocellular connectivity, but still may receive beacons from endpointdevices 105 via the wireless network 110. Using the network architecture100, telco operators, for example, can now easily deploy a softwareupdate to their user devices to begin communicating with endpointdevices 105 as described herein to provide higher latency IoTconnectivity to even the remotest regions of the world.

In a specific example, the network architecture 100 can be used forasset tracking and management. For example, the network architecture 100can be used to find lost items that are configured as an endpoint device105, such as a skateboard with a wireless radio chipset, an attachedtracking beacon, a laptop, etc. A user, for example, may indicate thatthe item is lost, such as by using a mobile application or website toindicate, to the endpoint manager server 135 or to the relay server 125,that the item is lost. In a first embodiment, the endpoint managerserver 135 may send a message to one or more relay servers 125 to watchfor the lost item. The relay servers 125 may add an identifier of thelost item to a lost item watch list. As intermediate devices 115 move todifferent geographic locations, they can receive beacons from differentendpoint devices 103. The intermediate devices 115 then forward thebeacons to the relay servers 125. When a relay server 125 serverreceivers a beacon, the relay server 125 can analyze the beacon todetermine if the beacon originated at an endpoint device 105 that is onthe watch list. When the relay server 125 identifies a beacon thatoriginated at an endpoint device 105 that is on the watch list, therelay server 125 can notify the endpoint manager server 135 that thelost item has been found. In at least some embodiments, the relay server125 may send the notification that the lost item has been found as apush notification or as a pull notification (i.e., in response to arequest from the endpoint manager server 135). In at least someembodiments, the relay server 125 may send the notification that thelost item has been found to the user device that was used by the user toindicate that the item was lost.

Modifications, additions, or omissions may be made to the networkarchitecture 100 without departing from the scope of the presentdisclosure. The present disclosure more generally applies to the networkarchitecture 100 including one or more endpoint devices 105, one or morewireless networks, one or more intermediate devices 115, one or moresecond networks 120, one or more relay servers 125, one or more thirdnetworks 130, and one or more endpoint manager servers 135 or anycombination thereof.

Moreover, the separation of various components in the embodimentsdescribed herein is not meant to indicate that the separation occurs inall embodiments. In addition, it may be understood with the benefit ofthis disclosure that the described components may be integrated togetherin a single component or separated into multiple components.

FIG. 2 illustrates an example network architecture 200 in whichembodiments of the present disclosure may be implemented. The networkarchitecture 200 may include components illustrated and described inFIG. 1, such as one or more endpoint devices 105, one or moreintermediate devices 115, one or more relay servers 125, and one or moreendpoint manager servers 135. In particular, FIG. 2 illustrates howintermediate devices 115 may move within the network architecture 200and how data is communicated within the network architecture 200 due tothe movements.

As compared to FIG. 1, FIG. 2 illustrates that the intermediate device115 b has moved to a different geographical location. In response tothis move, the intermediate device 115 b is no longer in communicationwith the relay server 125 a and instead, is in communication with therelay server 125 b. The intermediate device 115 b is also no longerclose enough to the endpoint device 105 b to be able to communicate withthe endpoint device 105 b. As illustrated, there is no intermediatedevice 115 that is within range of the endpoint device 105 b. Theendpoint device 105 b, however, may continue to send beacons even thoughthere is no device within range to receive the beacons.

Also illustrated, the intermediate device 115 b is now within range ofthe endpoint device 105 c. The intermediate device 115 b is now able tocommunicate with the endpoint device 105 c via the wireless network 110e, such as by receiving beacons from the endpoint device 105 c and bysending response messages to the endpoint device 105 c. In at least someembodiments, the intermediate device 115 c may have previously receiveda beacon from the endpoint device 105 c and may have forwarded thebeacon to the relay server 125 b. The relay server 125 b may have sent abeacon message to the endpoint manager server 135 and may have receiveda response message from the endpoint manager server 135. Since theintermediate device 115 b is now within range of the endpoint device 105c, as well as the intermediate device 115 c, the relay server 125 b mayselect one of the intermediate device 115 b or the intermediate device115 c to handle sending the response message to the endpoint device 105c. The relay server 125 b may use any selection criteria to select whichintermediate device 115 to use to send the response message, such as aconnection strength between the intermediate device 115 and the targetendpoint device 105, a proximity of an endpoint device 105 to anintermediate device 115, a type of wireless network 110 that connects anintermediate device 115 and an endpoint device 105, a cost of aconnection between an intermediate device 115 and an endpoint device105, a current battery level of the intermediate device, a type ofintermediate device, etc.

In at least some embodiments, both of the intermediate device 115 b andthe intermediate device 115 c are within range of the endpoint device105 c and both receive the same beacon from the endpoint device 105 c.Further, the intermediate device 115 b and the intermediate device 115 cboth may forward the beacon of the endpoint device 105 c to the relayserver 125 b. To reduce redundancy, network traffic, battery life, etc.,the relay server 125 b may select one of the intermediate device 115 band the intermediate device 115 c to handle communication with theendpoint device 105 c and instruct the non-selected intermediate deviceto ignore beacons from the endpoint device 105 c, to discard beaconsfrom the endpoint device 105 c, to stop sending beacons from theendpoint device 105 c, or any other operation that may reduce networkcongestion, free-up data storage space, free-up processor capabilities,etc. As more intermediate devices 115 become available for datatransport, data transmission frequency for a particular intermediatedevice may decrease. In the long term, with enhanced densityintermediate device and machine learning based protocols, the technologydescribed here may significantly improve battery life for intermediatedevices, reduce network congestion, improve global connectivity, etc.The relay server 125 b may use any selection criteria to select whichintermediate device 105 to use to communicate with the endpoint device105 and which intermediate device to cease communications regarding theendpoint device 105, such as a connection strength between theintermediate device 115 and the target endpoint device 105, a proximityof an endpoint device 105 to an intermediate device 115, a type ofwireless network 110 that connects an intermediate device 115 and anendpoint device 105, a cost of a connection between an intermediatedevice 115 and an endpoint device 105, a current battery level of theintermediate device, a type of intermediate device, etc.

FIG. 3 illustrates an example network architecture 300 in whichembodiments of the present disclosure may be implemented. The networkarchitecture 300 may include components illustrated and described inFIG. 1, such as one or more endpoint devices 105, one or moreintermediate devices 115, one or more relay servers 125, and one or moreendpoint manager servers 135. In particular, FIG. 3 illustrates how anintermediate device 115 a may communicate with endpoint device 105 aeven without the intermediate device 115 a being connected to the secondnetwork 102 (e.g., without having an active Internet connection). Forexample, the intermediate device 115 a may move to an area with littleor no cellular coverage and still be able to receive beacons fromendpoint devices 105. Further, the intermediate device 115 a may havepreviously received a message addressed to the endpoint device 105 a.The intermediate device 115 a may store this message until theintermediate device 115 a is within range of the endpoint device 105 a,upon which the intermediate device 115 a may send the message to theendpoint device 105 a. In at least some embodiments, the intermediatedevice 115 a may have been selected by a relay server 125 to handle thisparticular message for endpoint device 105 a based on prior activitiesof the intermediate device 115 a. For example, the intermediate device115 a may have previously carried messages to the endpoint device 105 a.Additionally or alternatively, the intermediate device 115 a may be theonly intermediate device that has communicated with the endpoint device105 a, or the intermediate device 115 a may be the most recentintermediate device to have communicated with the endpoint device 105 a.

FIG. 4 illustrates an example network architecture 400 in whichembodiments of the present disclosure may be implemented. The networkarchitecture 400 may include components illustrated and described inFIG. 1, such as one or more endpoint devices 105, one or moreintermediate devices 115, one or more relay servers 125, and one or moreendpoint manager servers 135. In particular, FIG. 4 illustrates how anintermediate device 115 a that was previously not connected to thesecond network 120 (as illustrated in FIG. 3) can move within range ofthe second network 120 and communicated data received from the endpointdevice 105 a. As illustrated in FIG. 4, the intermediate device 115 ahas moved to a location that is within range of the second network 120b. Once connected to the relay server 125 b via the second network 120b, the intermediate device 115 a may send a beacon received from theendpoint device 105 a. The intermediate device 115 a may also receiveadditional messages from the relay server 125 b that that are addressedto the endpoint device 105 a that the intermediate device 115 a may sendto the endpoint device 105 a at a later time.

FIGS. 5-7 illustrate flow diagrams of example methods related todecentralized networking. The methods may be performed by processinglogic that may include hardware (circuitry, dedicated logic, etc.),software (such as is run on a general purpose computer system or adedicated machine), or a combination of both, which processing logic maybe included in the intermediate device 115 and/or the relay server 125of FIG. 1, or another computer system or device. However, anothersystem, or combination of systems, may be used to perform the methods.For simplicity of explanation, methods described herein are depicted anddescribed as a series of acts. However, acts in accordance with thisdisclosure may occur in various orders and/or concurrently, and withother acts not presented and described herein. Further, not allillustrated acts may be used to implement the methods in accordance withthe disclosed subject matter. In addition, those skilled in the art willunderstand and appreciate that the methods may alternatively berepresented as a series of interrelated states via a state diagram orevents. Additionally, the methods disclosed in this specification arecapable of being stored on an article of manufacture, such as anon-transitory computer-readable medium, to facilitate transporting andtransferring such methods to computing devices. The term article ofmanufacture, as used herein, is intended to encompass a computer programaccessible from any computer-readable device or storage media. Althoughillustrated as discrete blocks, various blocks may be divided intoadditional blocks, combined into fewer blocks, or eliminated, dependingon the desired implementation.

FIG. 5 illustrates a flow diagram of an example method 500 to handlecommunications between devices. For example, the example method 500 maybe performed by a relay server (e.g., the relay server 125 of FIGS. 1-4)to handle communications for and between an endpoint device (e.g., theendpoint device 105 of FIGS. 1-4) and an endpoint manager server 135(e.g., the endpoint manager server 135 of FIGS. 1-4).

The method 500 may begin at block 505, where processing logic mayreceive a beacon from a first intermediate device via a first network.The first intermediate device may include the intermediate device 115 aof FIG. 1, for example. The beacon may have been received by the firstintermediate device from an endpoint device (e.g., the endpoint device105 a of FIG. 1) via a second network (e.g., the wireless network 110 aof FIG. 1). In at least some embodiments, the first network is alonger-range network or a higher-power network as compared to the secondnetwork.

At block 510, the processing logic may identifying a characteristic ofthe beacon. For example, the beacon may include data indicative of ageographical location of the endpoint device and an identifier of theendpoint device. Identifying the characteristic of the beacon mayinclude scanning the beacon to identify the data indicative of thegeographical location of the endpoint device and the identifier of theendpoint device.

At block 515, the processing logic may identifying a server that isassociated with the beacon. The server may include the endpoint managerserver 135 of FIG. 1. In at least some embodiments, the processing logicmay use the characteristic of the beacon to identify the server. Forexample, the identifier of the endpoint device may be associated with aparticular server. The processing logic may use the identifier of theendpoint device as a key to lookup the server and/or an address of theserver.

At block 520, the processing logic may send a beacon message to theserver via a third network. The third network may include the network130 of FIG. 1. In at least some embodiments, the beacon message mayinclude at least one of: the beacon, or information pertaining to thebeacon, such as data collected by the beacon. In at least someembodiments, sending the beacon message to the server via the thirdnetwork may include sending the identifier of the endpoint device to theserver. The processing logic may send the beacon message to the serveras a push or pull message.

At block 525, the processing logic may receive, from the server, aresponse message pertaining to the beacon message. In at least someembodiments, the response message may be addressed to a secondintermediate device (e.g., the intermediate device 115 b of FIG. 1), ora user device. In at least some embodiments, the response message mayinclude an indication that the endpoint device—a lost device—has beenfound. The response message may also include at least one instruction,executable by the second intermediate device or user device, to displaya location of the endpoint device on an electronic map.

At block 530, the processing logic may process the response message. Inat least some embodiments, processing the response message includessending the response message to the second intermediate device. In atleast some embodiments, the response message may include an instructionexecutable by the endpoint device and processing the response messagemay include sending the response message to the endpoint device.Processing the response message may also include storing the responsemessage.

At block 535, the processing logic may send the response message to anendpoint device. In at least some embodiments, sending the responsemessage to the endpoint device may include identifying an intermediatedevice that is currently communicatively coupled to the endpoint device,such as any of the intermediate devices 115 of FIG. 1. Sending theresponse message to the endpoint device may also include sending theresponse message to the identified intermediate device with aninstruction to forward the response message to the endpoint device.

FIG. 6 illustrates a flow diagram of an example method 600 to handlecommunications between an endpoint device and other devices. Forexample, the example method 600 may be performed by an intermediatedevice (e.g., the intermediate device 115 of FIGS. 1-4) to handlecommunications for and between an endpoint device (e.g., the endpointdevice 105 of FIGS. 1-4) and an endpoint manager server 135 (e.g., theendpoint manager server 135 of FIGS. 1-4). In at least some embodiments,the processing logic may include software that is installed on more thanone device.

The method 600 may begin at block 605, where processing logic may listenfor the beacon. In at least some embodiments, the processing logic mayby periodically scan for beacons via a first network (e.g., the wirelessnetwork 110 of FIG. 1). The processing logic may also subscribe tobeacons of one or more endpoint devices.

At block 610, the processing logic may detect movement of a firstintermediate device from a first geographic location to a secondgeographic location. For example, the first intermediate device mayinclude a motion sensor, such as a gyroscope, accelerometer, GPS,network triangulator, etc. to determine movement of the firstintermediate device.

At block 615, the processing logic may, responsive to the firstintermediate device moving to the second geographic location, receive abeacon from an endpoint device. For example, the first intermediatedevice may, upon entering a new geographic location, scan for anybeacons from endpoint devices. For as long as the first intermediatedevice stays relatively still, the first intermediate device may notfurther scan for beacons. Once the first intermediate device moves, thefirst intermediate device may scan for beacons. In at least someembodiments, the first intermediate device is configured to receive thebeacon from the endpoint device via the first network.

At block 620, the processing logic may identify a relay server (e.g.,the relay server 125 of FIG. 1) to send a beacon message. The beaconmessage may include at least one of: the beacon, or informationpertaining to the beacon, as described herein. In at least someembodiments, identifying the relay server to send the beacon message mayinclude determining a geographic location of the first intermediatedevice and identifying the relay server from a set of relay servers. Forexample, the processing logic may select the relay server that is theclosest relay server to the geographic location of the firstintermediate device.

At block 625, the processing logic may send the beacon message from theendpoint device to the relay server. In at least some embodiments, thebeacon message may be sent from the endpoint device to the relay serverin response to a determination that the first intermediate device isconnected to a second network (e.g., the second network 120 of FIG. 1).In at least some embodiments, sending the beacon message from theendpoint device to the relay server may include sending the beaconmessage from the endpoint device to the relay server via the secondnetwork.

At block 630, the processing logic may receive, from the relay server, aresponse message pertaining to the beacon message. The response messagemay include an identification of the endpoint device to which to sendthe response message. In at least one embodiment, receiving the responsemessage pertaining to the beacon message may include receiving theresponse message at a second intermediate device, such as theintermediate device 115 b of FIG. 1. The first intermediate device andthe second intermediate device may both have instances of a executablesoftware application that form a virtual network of interconnecteddevices that may be used to transmit, carry, and receive data.

At block 635, the processing logic may send the response message to theendpoint device, such as via the wireless network 110 of FIG. 1. In atleast one embodiment, sending the response message to the endpointdevice may include determining that the response message includes aninstruction to send the response message to the endpoint device. Todetermine whether the response message includes such an instruction, theprocessing logic may inspect the response message, or metadataassociated with the response message, to determine that the responsemessage is to be sent to the endpoint device. In at least oneembodiment, the response message may be sent to the endpoint device mayvia the first intermediate device or the second intermediate device.

FIG. 7 illustrates a flow diagram of another example method 700 tohandle communications between an endpoint device and other devices. Forexample, the example method 700 may be performed by an intermediatedevice (e.g., the intermediate device 115 of FIGS. 1-4) to handlecommunications for and between an endpoint device (e.g., the endpointdevice 105 of FIGS. 1-4) and an endpoint manager server 135 (e.g., theendpoint manager server 135 of FIGS. 1-4). In at least some embodiments,the processing logic may include software that is installed on more thanone device.

The method 700 may begin at block 705, where processing logic mayreceive a beacon from an endpoint device, such as via a wireless network(e.g., the wireless network 110 of FIG. 1). At block 710, the processinglogic may determine whether to request a response message from a server(e.g., the endpoint manager server 135 of FIG. 1).

In response to a determination to request a response message from aserver (“YES” at block 710), the processing logic may identify a relayserver to send a beacon message at block 715. At block 720, theprocessing logic may send the beacon message to the server identified atblock 715. At block 725, the processing logic may receive a responsemessage from the server. At block 730, the processing logic may send theresponse message to the endpoint device.

In response to a determination to request a response message from aserver (“NO” at block 710), the processing logic at block 735 may listenfor more beacon until a predetermined event occurs. The predeterminedevent may include a lapse of a predetermined period of time, reaching atime threshold, reaching a storage capacity, reaching a buffer limit,etc. At block 740, the processing logic may identify a relay server tosend one or more beacon messages associated with one or more beaconsidentified at block 735. At block 745, the processing logic may send theone or more beacon messages to one or more relay servers.

FIG. 8 illustrates a diagrammatic representation of a machine in theexample form of a computing device 800 within which a set ofinstructions, for causing the machine to perform any one or more of themethods discussed herein, may be executed. The computing device 800 mayinclude a mobile phone, a smart phone, a netbook computer, a rackmountserver, a router computer, a server computer, a personal computer, amainframe computer, a laptop computer, a tablet computer, a desktopcomputer, or any computing device with at least one processor, etc.,within which a set of instructions, for causing the machine to performany one or more of the methods discussed herein, may be executed. Inalternative embodiments, the machine may be connected (e.g., networked)to other machines in a LAN, an intranet, an extranet, or the Internet.The machine may operate in the capacity of a server machine inclient-server network environment. The machine may include a personalcomputer (PC), a set-top box (STB), a server, a network router, switchor bridge, or any machine capable of executing a set of instructions(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while only a single machine is illustrated, the term“machine” may also include any collection of machines that individuallyor jointly execute a set (or multiple sets) of instructions to performany one or more of the methods discussed herein.

The example computing device 800 includes a processing device (e.g., aprocessor) 802, a main memory 804 (e.g., read-only memory (ROM), flashmemory, dynamic random access memory (DRAM) such as synchronous DRAM(SDRAM)), a static memory 806 (e.g., flash memory, static random accessmemory (SRAM)) and a data storage device 816, which communicate witheach other via a bus 808.

Processing device 802 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device 802 may include a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets orprocessors implementing a combination of instruction sets. Theprocessing device 802 may also include one or more special-purposeprocessing devices such as an application specific integrated circuit(ASIC), a field programmable gate array (FPGA), a digital signalprocessor (DSP), network processor, or the like. The processing device802 is configured to execute instructions 826 for performing theoperations and steps discussed herein.

The computing device 800 may further include a network interface device822 which may communicate with a network 818. The computing device 800also may include a display device 810 (e.g., a liquid crystal display(LCD) or a cathode ray tube (CRT)), an alphanumeric input device 812(e.g., a keyboard), a cursor control device 814 (e.g., a mouse) and asignal generation device 820 (e.g., a speaker). In at least oneembodiment, the display device 810, the alphanumeric input device 812,and the cursor control device 814 may be combined into a singlecomponent or device (e.g., an LCD touch screen).

The data storage device 816 may include a computer-readable storagemedium 824 on which is stored one or more sets of instructions 826embodying any one or more of the methods or functions described herein.The instructions 826 may also reside, completely or at least partially,within the main memory 804 and/or within the processing device 802during execution thereof by the computing device 800, the main memory804 and the processing device 802 also constituting computer-readablemedia. The instructions may further be transmitted or received over anetwork 818 via the network interface device 822.

While the computer-readable storage medium 826 is shown in an exampleembodiment to be a single medium, the term “computer-readable storagemedium” may include a single medium or multiple media (e.g., acentralized or distributed database and/or associated caches andservers) that store the one or more sets of instructions. The term“computer-readable storage medium” may also include any medium that iscapable of storing, encoding or carrying a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methods of the present disclosure. The term“computer-readable storage medium” may accordingly be taken to include,but not be limited to, solid-state memories, optical media and magneticmedia.

Terms used herein and especially in the appended claims (e.g., bodies ofthe appended claims) are generally intended as “open” terms (e.g., theterm “including” may be interpreted as “including, but not limited to,”the term “having” may be interpreted as “having at least,” the term“includes” may be interpreted as “includes, but is not limited to,”etc.).

Additionally, if a specific number of an introduced claim recitation isintended, such an intent will be explicitly recited in the claim, and inthe absence of such recitation no such intent is present. For example,as an aid to understanding, the following appended claims may containusage of the introductory phrases “at least one” and “one or more” tointroduce claim recitations. However, the use of such phrases may not beconstrued to imply that the introduction of a claim recitation by theindefinite articles “a” or “an” limits any particular claim containingsuch introduced claim recitation to embodiments containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” may be interpreted to mean “at least one” or“one or more”); the same holds true for the use of definite articlesused to introduce claim recitations.

In addition, even if a specific number of an introduced claim recitationis explicitly recited, those skilled in the art will recognize that suchrecitation may be interpreted to mean at least the recited number (e.g.,the bare recitation of “two recitations,” without other modifiers, meansat least two recitations, or two or more recitations). Further, in thoseinstances where a convention analogous to “at least one of A, B, and C,etc.” or “one or more of A, B, and C, etc.” is used, in general such aconstruction is intended to include A alone, B alone, C alone, A and Btogether, A and C together, B and C together, or A, B, and C together,etc. For example, the use of the term “and/or” is intended to beconstrued in this manner.

Further, any disjunctive word or phrase presenting two or morealternative terms, whether in the description, claims, or drawings, maybe understood to contemplate the possibilities of including one of theterms, either of the terms, or both terms. For example, the phrase “A orB” may be understood to include the possibilities of “A” or “B” or “Aand B.”

Embodiments described herein may be implemented using computer-readablemedia for carrying or having computer-executable instructions or datastructures stored thereon. Such computer-readable media may be anyavailable media that may be accessed by a general purpose or specialpurpose computer. By way of example, and not limitation, suchcomputer-readable media may include non-transitory computer-readablestorage media including Random Access Memory (RAM), Read-Only Memory(ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM),Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage,magnetic disk storage or other magnetic storage devices, flash memorydevices (e.g., solid state memory devices), or any other storage mediumwhich may be used to carry or store desired program code in the form ofcomputer-executable instructions or data structures and which may beaccessed by a general purpose or special purpose computer. Combinationsof the above may also be included within the scope of computer-readablemedia.

Computer-executable instructions may include, for example, instructionsand data which cause a general purpose computer, special purposecomputer, or special purpose processing device (e.g., one or moreprocessors) to perform a certain function or group of functions.Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

As used herein, the terms “module” or “component” may refer to specifichardware implementations configured to perform the operations of themodule or component and/or software objects or software routines thatmay be stored on and/or executed by general purpose hardware (e.g.,computer-readable media, processing devices, etc.) of the computingsystem. In some embodiments, the different components, modules, engines,and services described herein may be implemented as objects or processesthat execute on the computing system (e.g., as separate threads). Whilesome of the system and methods described herein are generally describedas being implemented in software (stored on and/or executed by generalpurpose hardware), specific hardware implementations or a combination ofsoftware and specific hardware implementations are also possible andcontemplated. In this description, a “computing entity” may be anycomputing system as previously defined herein, or any module orcombination of modulates running on a computing system.

All examples and conditional language recited herein are intended forpedagogical objects to aid the reader in understanding the invention andthe concepts contributed by the inventor to furthering the art, and areto be construed as being without limitation to such specifically recitedexamples and conditions. Although embodiments of the present disclosurehave been described in detail, it may be understood that the variouschanges, substitutions, and alterations may be made hereto withoutdeparting from the spirit and scope of the present disclosure.

What is claimed is:
 1. A method, comprising: receiving a beacon from afirst intermediate device via a first network, wherein the beacon wasreceived by the first intermediate device from an endpoint device via asecond network; identifying a characteristic of the beacon; identifying,based on the characteristic of the beacon, a server that is associatedwith the beacon; sending a beacon message to the server via a thirdnetwork, the beacon message including at least one of the beacon, orinformation pertaining to the beacon; receiving, from the server, aresponse message pertaining to the beacon message; and processing theresponse message.